import { ComputedRef, InjectionKey, Ref, Slots, UnwrapRef } from 'vue';
import type { TabPaneProps } from '../components/tabs/src/tab-pane';
export type TabsPaneContext = UnwrapRef<{
  props: TabPaneProps;
  active: ComputedRef<boolean>;
  minimize: boolean;
}>;
export interface TabsRootContext {
  currentName: Ref<string | number>;
  registerPane: (pane: TabsPaneContext) => void;
  unregisterPane: (tabName: string | number) => void;
  minimizePane: (tabName: string | number) => void;
  removePane: (tabName: string | number) => void;
}
export const tabsRootContextKey: InjectionKey<TabsRootContext> = Symbol('tabsRootContextKey');
export interface TabPaneRootContext {
  handleMinimize: () => void;
  handleMaximize: () => void;
  handleTabRemove: () => void;
  props: TabPaneProps;
  active: ComputedRef<boolean>;
}
export const tabPaneRootContextKey: InjectionKey<TabPaneRootContext> = Symbol('tabPaneRootContextKey');
